/**
 * 用户相关类型定义
 */

import type { BaseQueryParams } from './common'

/**
 * 用户状态枚举
 */
export type UserStatus = 'active' | 'inactive'

/**
 * 用户角色枚举
 */
export type UserRole = 'admin' | 'user' | 'guest'

/**
 * 用户实体
 */
export interface User {
  id: number
  username: string
  email: string
  password?: string // 仅用于内部处理，不对外暴露
  role: UserRole
  status: UserStatus
  avatar?: string
  phone?: string
  createTime: string
  updateTime?: string
}

/**
 * 用户表单数据
 */
export interface UserForm {
  username: string
  email: string
  password?: string
  role: UserRole
  status: UserStatus
  phone?: string
}

/**
 * 用户查询参数
 */
export interface UserQuery extends BaseQueryParams {
  role?: UserRole
  status?: UserStatus
}

/**
 * 用户登录表单
 */
export interface LoginForm {
  username: string
  password: string
  remember?: boolean
}

/**
 * 登录响应
 */
export interface LoginResponse {
  token: string
  user: Omit<User, 'password'>
}

/**
 * 用户信息（不包含敏感信息）
 */
export type UserInfo = Omit<User, 'password'>
